<?php
// 如何在一个php中引入另一个php?
@include_once("conn.php");


if (!(isset($_POST["id"])  && isset($_POST["ch"]) && isset($_POST["mh"]) && isset($_POST["eh"]))) {
    exit('{"status":false,"message":"请传入完整参数"}');
}

$id = $_POST["id"];
$ch = $_POST["ch"];
$mh = $_POST["mh"];
$eh = $_POST["eh"];


// mysqli_query($conn, $sql)   执行传入的sql语句
// $conn 链接对象
// $sql  需要执行的sql语句

// 返回值(查询):
// 语句执行成功 => 返回查询的结果对象 (mysqli_result Object  => 需要进一步解析才能得到数据)
// 语句执行失败 => false  

// 返回值(增删改):
// 语句执行成功 => true 
// 语句执行失败 => false 

$obj = array();

$sql = "select * from `grade` where id = $id";
$result = mysqli_query($conn, $sql);


$obj = array();
if ($result) { // 有结果对象 => 可能有数据
    $item = mysqli_fetch_assoc($result);
    // print_r($item === null);

    if ($item) { // $item == true  =>  存在该学员成绩 => 更新

        $sql = "update `grade` set chinese = $ch, math = $mh,english = $eh where id = $id";
        $result = mysqli_query($conn, $sql);
        // echo $result;
        if ($result) { // true => 语句执行成功

            // 语句执行成功 => 没有错误 => 并不一定会影响数据  => 判断受影响的行数
            // $rows = mysqli_affected_rows($conn);  返回语句执行成功之后 受影响的函数
            // rows > 0 增删改成功
            // rows = 0 语句执行成功,数据未改变 (删除的数据不存在 更新的数据不存在 更新的数据和原数据一致)
            // rows = -1 语句执行失败

            $rows = mysqli_affected_rows($conn);

            if ($rows > 0) {
                $obj["status"] = true;
                $obj["message"] = "更新成功";
            } else {  // 更新的数据和原数据一致
                $obj["status"] = true;
                $obj["message"] = "更新成功,数据未做更改!";
            }
        } else {
            $obj["status"] = false;
            $obj["message"] = "sql语句有误";
            $obj["sql"] = $sql;
        }
    } else { // 没有的话不能更新
        $obj["status"] = false;
        $obj["message"] = "不存在该学员!";
    }
} else {
    $obj["status"] = false;
    $obj["message"] = "sql语句有误";
    $obj["sql"] = $sql;
}


echo json_encode($obj);
